//分割字符串的最大得分
/*给你一个由若干 0 和 1 组成的字符串 s ，请你计算并返回将该字符串分割成两个 非空 子字符串（即 左 子字符串和 右 子字符串）所能获得的最大得分。

「分割字符串的得分」为 左 子字符串中 0 的数量加上 右 子字符串中 1 的数量。
*/
class Solution {
public:
    int maxScore(string s) {
        int one_count = 0;
        for (auto& c : s) {
            if (c == '1')
                one_count++;
        }
        int zero_count = 0;
        int Max = 0; // one_count;
        s.pop_back();
        for (auto& c : s) {
            if (c == '1')
                one_count--;
            else
                zero_count++;
            Max = max(one_count + zero_count, Max);
        }
        return Max;
    }
};

//两栋颜色不同且距离最远的房子
/*街上有 n 栋房子整齐地排成一列，每栋房子都粉刷上了漂亮的颜色。给你一个下标从 0 开始且长度为 n 的整数数组 colors ，其中 colors[i] 表示第  i 栋房子的颜色。

返回 两栋 颜色 不同 房子之间的 最大 距离。

第 i 栋房子和第 j 栋房子之间的距离是 abs(i - j) ，其中 abs(x) 是 x 的绝对值。*/
class Solution {
public:
    int maxDistance(vector<int>& colors) {
        int Max=0;
        for(int i=0;i<colors.size();i++)
        {
            for(int j=colors.size()-1;j>i;j--)
            {
                if(colors[i]!=colors[j])
                Max=max(Max,abs(j-i));
            }
        }
        return Max;
    }
};